// Private window messages
#define WM_DSV_FSNOTIFY                 (WM_USER+0xA0)
#define WM_DSV_DESTROYSTATIC            (WM_USER+0xA1)
#define WM_DSV_BACKGROUNDENUMDONE       (WM_USER+0xA2)
#define WM_DSV_UPDATEICON               (WM_USER+0xA3)

#define SHARED_FILE_FIRST               0x0010
#define SHARED_FILE_LINK                (SHARED_FILE_FIRST + 0x0000)
#define SHARED_FILE_DELETE              (SHARED_FILE_FIRST + 0x0001)
#define SHARED_FILE_RENAME              (SHARED_FILE_FIRST + 0x0002)
#define SHARED_FILE_PROPERTIES          (SHARED_FILE_FIRST + 0x0003)

#define SHARED_EDIT_FIRST               0x0018
#define SHARED_EDIT_CUT                 (SHARED_EDIT_FIRST + 0x0000)
#define SHARED_EDIT_COPY                (SHARED_EDIT_FIRST + 0x0001)
#define SHARED_EDIT_PASTE               (SHARED_EDIT_FIRST + 0x0002)
#define SHARED_EDIT_UNDO                (SHARED_EDIT_FIRST + 0x0003)
#define SHARED_EDIT_PASTELINK           (SHARED_EDIT_FIRST + 0x0004)
#define SHARED_EDIT_PASTESPECIAL        (SHARED_EDIT_FIRST + 0x0005)

#define SFVIDM_FILE_FIRST               (SFVIDM_FIRST + SHARED_FILE_FIRST)
#define SFVIDM_FILE_LINK                (SFVIDM_FIRST + SHARED_FILE_LINK)
#define SFVIDM_FILE_DELETE              (SFVIDM_FIRST + SHARED_FILE_DELETE)
#define SFVIDM_FILE_RENAME              (SFVIDM_FIRST + SHARED_FILE_RENAME)
#define SFVIDM_FILE_PROPERTIES          (SFVIDM_FIRST + SHARED_FILE_PROPERTIES)

#define SFVIDM_EDIT_FIRST               (SFVIDM_FIRST + SHARED_EDIT_FIRST)
#define SFVIDM_EDIT_CUT                 (SFVIDM_FIRST + SHARED_EDIT_CUT)
#define SFVIDM_EDIT_COPY                (SFVIDM_FIRST + SHARED_EDIT_COPY)
#define SFVIDM_EDIT_PASTE               (SFVIDM_FIRST + SHARED_EDIT_PASTE)
#define SFVIDM_EDIT_UNDO                (SFVIDM_FIRST + SHARED_EDIT_UNDO)
#define SFVIDM_EDIT_PASTELINK           (SFVIDM_FIRST + SHARED_EDIT_PASTELINK)
#define SFVIDM_EDIT_PASTESPECIAL        (SFVIDM_FIRST + SHARED_EDIT_PASTESPECIAL)

#define SFVIDM_SELECT_FIRST             (SFVIDM_FIRST + 0x0020)
#define SFVIDM_SELECT_ALL               (SFVIDM_SELECT_FIRST + 0x0001)
#define SFVIDM_SELECT_INVERT            (SFVIDM_SELECT_FIRST + 0x0002)
#define SFVIDM_DESELECT_ALL             (SFVIDM_SELECT_FIRST + 0x0003)

#define SFVIDM_VIEW_FIRST               (SFVIDM_FIRST + 0x0028)
#define SFVIDM_VIEW_ICON                (SFVIDM_VIEW_FIRST + 0x0001)
#define SFVIDM_VIEW_SMALLICON           (SFVIDM_VIEW_FIRST + 0x0002)
#define SFVIDM_VIEW_LIST                (SFVIDM_VIEW_FIRST + 0x0003)
#define SFVIDM_VIEW_DETAILS             (SFVIDM_VIEW_FIRST + 0x0004)
#define SFVIDM_VIEW_OPTIONS             (SFVIDM_VIEW_FIRST + 0x0005)

#define SFVIDM_ARRANGE_FIRST            (SFVIDM_FIRST + 0x0030)
#define SFVIDM_ARRANGE_AUTO             (SFVIDM_ARRANGE_FIRST + 0x0001)
#define SFVIDM_ARRANGE_GRID             (SFVIDM_ARRANGE_FIRST + 0x0002)

#define SFVIDM_TOOL_FIRST               (SFVIDM_FIRST + 0x0035)
#define SFVIDM_TOOL_CONNECT             (SFVIDM_TOOL_FIRST + 0x0001)
#define SFVIDM_TOOL_DISCONNECT          (SFVIDM_TOOL_FIRST + 0x0002)

#define SFVIDM_HELP_FIRST               (SFVIDM_FIRST + 0x0040)
#define SFVIDM_HELP_TOPIC               (SFVIDM_HELP_FIRST + 0x0001)

#define SFVIDM_MISC_FIRST               (SFVIDM_FIRST + 0x0100)
#define SFVIDM_MISC_MENUTERM1           (SFVIDM_MISC_FIRST + 0x0001)
#define SFVIDM_MISC_MENUTERM2           (SFVIDM_MISC_FIRST + 0x0002)

//
// Reserved for debug only commands for defview
//
#define SFVIDM_DEBUG_FIRST              (SFVIDM_FIRST + 0x0180)
#define SFVIDM_DEBUG_LAST               (SFVIDM_FIRST + 0x01ff)
#define SFVIDM_DEBUG_HASH               (SFVIDM_DEBUG_FIRST + 10)
#define SFVIDM_DEBUG_MEMMON             (SFVIDM_DEBUG_FIRST + 11)
#define SFVIDM_DEBUG_ICON               (SFVIDM_DEBUG_FIRST + 12)
#define SFVIDM_DEBUG_ICON_SAVE          (SFVIDM_DEBUG_FIRST + 13)
#define SFVIDM_DEBUG_ICON_FLUSH         (SFVIDM_DEBUG_FIRST + 14)

// Range for the client's additional menus
#define SFVIDM_CLIENT_FIRST             (SFVIDM_FIRST + 0x0200)
#define SFVIDM_CLIENT_LAST              (SFVIDM_FIRST + 0x02ff)

// Range for context menu id's
#define SFVIDM_CONTEXT_FIRST            (SFVIDM_FIRST + 0x0800)
#define SFVIDM_CONTEXT_LAST             (SFVIDM_FIRST + 0x0900)


///// help string ids

#define SFVIDS_MH_FIRST                 (IDS_MH_SFVIDM_FIRST - SFVIDM_FIRST)

#define SFVIDS_MH_FILE_LINK             (SFVIDS_MH_FIRST + SFVIDM_FILE_LINK)
#define SFVIDS_MH_FILE_DELETE           (SFVIDS_MH_FIRST + SFVIDM_FILE_DELETE)
#define SFVIDS_MH_FILE_RENAME           (SFVIDS_MH_FIRST + SFVIDM_FILE_RENAME)
#define SFVIDS_MH_FILE_PROPERTIES       (SFVIDS_MH_FIRST + SFVIDM_FILE_PROPERTIES)

#define SFVIDS_MH_EDIT_UNDO             (SFVIDS_MH_FIRST + SFVIDM_EDIT_UNDO)
#define SFVIDS_MH_EDIT_CUT              (SFVIDS_MH_FIRST + SFVIDM_EDIT_CUT)
#define SFVIDS_MH_EDIT_COPY             (SFVIDS_MH_FIRST + SFVIDM_EDIT_COPY)
#define SFVIDS_MH_EDIT_PASTE            (SFVIDS_MH_FIRST + SFVIDM_EDIT_PASTE)
#define SFVIDS_MH_EDIT_PASTELINK        (SFVIDS_MH_FIRST + SFVIDM_EDIT_PASTELINK)
#define SFVIDS_MH_EDIT_PASTESPECIAL     (SFVIDS_MH_FIRST + SFVIDM_EDIT_PASTESPECIAL)

#define SFVIDS_MH_MENU_SELECT           (SFVIDS_MH_FIRST + SFVIDM_MENU_SELECT)
#define SFVIDS_MH_SELECT_ALL            (SFVIDS_MH_FIRST + SFVIDM_SELECT_ALL)
#define SFVIDS_MH_SELECT_INVERT         (SFVIDS_MH_FIRST + SFVIDM_SELECT_INVERT)

#define SFVIDS_MH_MENU_VIEW             (SFVIDS_MH_FIRST + SFVIDM_MENU_VIEW)
#define SFVIDS_MH_VIEW_ICON             (SFVIDS_MH_FIRST + SFVIDM_VIEW_ICON)
#define SFVIDS_MH_VIEW_SMALLICON        (SFVIDS_MH_FIRST + SFVIDM_VIEW_SMALLICON)
#define SFVIDS_MH_VIEW_LIST             (SFVIDS_MH_FIRST + SFVIDM_VIEW_LIST)
#define SFVIDS_MH_VIEW_DETAILS          (SFVIDS_MH_FIRST + SFVIDM_VIEW_DETAILS)
#define SFVIDS_MH_VIEW_OPTIONS          (SFVIDS_MH_FIRST + SFVIDM_VIEW_OPTIONS)

#define SFVIDS_MH_MENU_ARRANGE          (SFVIDS_MH_FIRST + SFVIDM_MENU_ARRANGE)
#define SFVIDS_MH_ARRANGE_AUTO          (SFVIDS_MH_FIRST + SFVIDM_ARRANGE_AUTO)
#define SFVIDS_MH_ARRANGE_GRID          (SFVIDS_MH_FIRST + SFVIDM_ARRANGE_GRID)

#define SFVIDS_MH_TOOL_CONNECT          (SFVIDS_MH_FIRST + SFVIDM_TOOL_CONNECT)
#define SFVIDS_MH_TOOL_DISCONNECT       (SFVIDS_MH_FIRST + SFVIDM_TOOL_DISCONNECT)

#define SFVIDS_MH_HELP_TOPIC            (SFVIDS_MH_FIRST + SFVIDM_HELP_TOPIC)

//tool tips
#define IDS_TT_VIEW_ICON                (IDS_TT_SFVIDM_FIRST + SFVIDM_VIEW_ICON)
#define IDS_TT_VIEW_SMALLICON           (IDS_TT_SFVIDM_FIRST + SFVIDM_VIEW_SMALLICON)
#define IDS_TT_VIEW_LIST                (IDS_TT_SFVIDM_FIRST + SFVIDM_VIEW_LIST)
#define IDS_TT_VIEW_DETAILS             (IDS_TT_SFVIDM_FIRST + SFVIDM_VIEW_DETAILS)

#define IDS_TT_TOOL_CONNECT             (IDS_TT_SFVIDM_FIRST + SFVIDM_TOOL_CONNECT)
#define IDS_TT_TOOL_DISCONNECT          (IDS_TT_SFVIDM_FIRST + SFVIDM_TOOL_DISCONNECT)

#define IDS_TT_EDIT_CUT                 (IDS_TT_SFVIDM_FIRST + SFVIDM_EDIT_CUT)
#define IDS_TT_EDIT_COPY                (IDS_TT_SFVIDM_FIRST + SFVIDM_EDIT_COPY)
#define IDS_TT_EDIT_PASTE               (IDS_TT_SFVIDM_FIRST + SFVIDM_EDIT_PASTE)
#define IDS_TT_EDIT_UNDO                (IDS_TT_SFVIDM_FIRST + SFVIDM_EDIT_UNDO)
#define IDS_TT_FILE_DELETE              (IDS_TT_SFVIDM_FIRST + SFVIDM_FILE_DELETE)
#define IDS_TT_FILE_PROPERTIES          (IDS_TT_SFVIDM_FIRST + SFVIDM_FILE_PROPERTIES)


HWND WINAPI DV_HwndMain2HwndView(HWND hwmdMain);
#define CDefView_UnlockWindow() DAD_DragLeave()

//
// IDs for non-default drag & drop menu
//
#define DDIDM_COPY              1
#define DDIDM_OPENWITH          DDIDM_COPY
#define DDIDM_MOVE              2
#define DDIDM_LINK              3
#define DDIDM_SCRAP_COPY        4
#define DDIDM_SCRAP_MOVE        5
#define DDIDM_DOCLINK           6
#define DDIDM_CONTENTS_COPY     7
#define DDIDM_CONTENTS_MOVE     8
#define DDIDM_SYNCCOPY          9
#define DDIDM_SYNCCOPYTYPE      10
#define DDIDM_CONTENTS_LINK     11
#define DDIDM_EXTFIRST          0x1000
#define DDIDM_EXTLAST           0x7fff

#define DIEC_BACKGROUNDCONTEXT   1
#define DIEC_SELECTIONCONTEXT    2

#define POPUP_DEBUG_DEFVIEW     400
